package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc AddOneCycleIrregularPeriodComReqDto
 * @使用场景
 */
@Data
public class AddOneCycleIrregularPeriodComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 上级被评对象目标周期ID
   */
  @NotNull(message = "上级被评对象目标周期ID不能为空")
  @ApiModelProperty("上级被评对象目标周期ID")
  private String parentvaObjTargetCycleId;

  /**
   * 被评对象目标周期标识
   */
  @NotNull(message = "被评对象目标周期标识不能为空")
  @ApiModelProperty("被评对象目标周期标识")
  private String evaObjTargetCycleCode;

  /**
   * 目标周期名称
   */
  @NotNull(message = "目标周期名称不能为空")
  @ApiModelProperty("目标周期名称")
  private String targetCycleName;

  /**
   * 关联目标内容ID
   */
  @NotNull(message = "关联目标内容ID不能为空")
  @ApiModelProperty("关联目标内容ID")
  private String targetCycleContentId;

  /**
   * 目标内容编号
   */
  @ApiModelProperty("目标内容编号")
  private String targetContentNumber;

  /**
   * 关联目标内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标
   */
  @NotNull(message = "关联目标内容类型编码不能为空")
  @ApiModelProperty("关联目标内容类型编码")
  private String targetCycleContentTypeCode;

  /**
   * 是否用于一级部门 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否用于一级部门")
  private String isUseFirstDept;

  /**
   * OKR目标属性 OBJECTIVES:目标O KEY_RESULTS:关键成果KR
   */
  @ApiModelProperty("OKR目标属性")
  private String indicatorKind;

  /**
   * 关联末级目标分类ID
   */
  @ApiModelProperty("关联末级目标分类ID")
  private String correlationLastTargetCatId;

  /**
   * 相对上级排序
   */
  @NotNull(message = "相对上级排序不能为空")
  @ApiModelProperty("相对上级排序")
  private Long relativeOrderNumber;

  /**
   * 部门排序
   */
  @ApiModelProperty("部门排序")
  private Long dutyBodyOrderNum;

  /**
   * 个人排序
   */
  @ApiModelProperty("个人排序")
  private Long personalOrderNumber;

  /**
   * 权重排序
   */
  @ApiModelProperty("权重排序")
  private Long weightOrderNumber;

  /**
   * 是否自定义OKR目标 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否自定义OKR目标")
  private String isCustomObjective;

  /**
   * 评价模板ID
   */
  @NotNull(message = "评价模板ID不能为空")
  @ApiModelProperty("评价模板ID")
  private String evaluationTemplateId;

  /**
   * 周期模式类型编码 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
   */
  @NotNull(message = "周期模式类型编码不能为空")
  @ApiModelProperty("周期模式类型编码")
  private String periodicModeTypeCode;

  /**
   * 批次标识
   */
  @NotNull(message = "批次标识不能为空")
  @ApiModelProperty("批次标识")
  private String batchCode;

  /**
   * 详细介绍描述
   */
  @ApiModelProperty("详细介绍描述")
  private String detailedIntroduce;

  /**
   * 建设目标描述
   */
  @ApiModelProperty("建设目标描述")
  private String targetsIntroduce;

  /**
   * 备注
   */
  @ApiModelProperty("备注")
  private String remarks;

}
